SI توسط map
مثال تزریق setter با استفاده از map
در این مثال از map به عنوان پاسخ برای سوالی استفاده می کنیم که پاسخ را به عنوان کلید و نام کاربری را به عنوان مقدار دارد. در اینجا از جفت کلید و مقدار به صورت رشته استفاده می شود. همانند مثال های قبلی، این مثال نیز برگرفته از فرومی است که" یک سوال می تواند چندین پاسخ داشته باشد" .
Question.java:
این کلاس شامل سه خصیصه،setter و getter ها و متد displayInfo() برای نمایش اطلاعات است.
package com.javatpoint;
import java.util.Iterator;
import java.util.Map;
import java.util.Set;
import java.util.Map.Entry;
public class Question {
private int id;
private String name;
private Map< String,String> answers;
//getters and setters
public void displayInfo(){
System.out.println("question id:"+id);
System.out.println("question name:"+name);
System.out.println("Answers....");
Set< Entry< String, String>> set=answers.entrySet();
Iterator< Entry< String, String>> itr=set.iterator();
while(itr.hasNext()){
Entry< String,String> entry=itr.next();
System.out.println("Answer:"+entry.getKey()+" Posted By:"+entry.getValue());
}
}
}
applicationContext.xml:
برای تعریف اطلاعات کلید و مقدار از ویژگی entry مربوط به map استفاده می شود.
< ?xml version="1.0" encoding="UTF-8" ?>
< beans 3. xmlns="http://www.springframework.org/schema/beans"
4. xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
5. xmlns:p="http://www.springframework.org/schema/p"
6. xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans-3.0.xsd">
< bean id="q" class="com.javatpoint.Question">
< property name="id" value="1">< /property>
< property name="name" value="What is Java?">< /property>
< property name="answers">
< map>
< entry key="Java is a programming language" value="Sonoo Jaiswal">< /entry>
< entry key="Java is a Platform" value="Sachin Yadav">< /entry>
< /map>
< /property>
< /bean>
< /beans>
Test.java:
این کلاس bean را از فایل applicationContext.xml می گیرد و متد displayInfo() را فراخوانی می کند.
package com.javatpoint;
import org.springframework.beans.factory.BeanFactory;
import org.springframework.beans.factory.xml.XmlBeanFactory;
import org.springframework.core.io.ClassPathResource;
import org.springframework.core.io.Resource;
public class Test {
public static void main(String[] args) {
Resource r=new ClassPathResource("applicationContext.xml");
BeanFactory factory=new XmlBeanFactory(r);
Question q=(Question)factory.getBean("q");
q.displayInfo();
}
}